home *** CD-ROM | disk | FTP | other *** search
/ Aminet 3 / Aminet 3 - July 1994.iso / Aminet / util / cli / DMAP21.lha / DMAP / DMAP.s < prev    next >
Encoding:
Text File  |  1994-01-27  |  35.1 KB  |  1,875 lines

  1.  
  2.     ***************************
  3.     *Installationsprogramm von*
  4.     *        DMAP V2.1      *
  5.     * setzt deutsche Tastatur *
  6.     *    setzt Systemzeit     *
  7.     *   installiert Blanker   *
  8.     *          usw.           *
  9.     *   von Martin Gierich      *
  10.     ***************************
  11.  
  12.  
  13. OpenLib    = -408    ;exec
  14. CloseLib= -414
  15. OpenDev    = -444
  16. CloseDev= -450
  17. DoIO    = -456
  18. OpenRes    = -498
  19. AddRes    = -486
  20. RemRes    = -492
  21. FindName= -276
  22. AddHead    = -240
  23. AllocMem= -198
  24. FreeMem    = -210
  25. FindTask= -294
  26. SetSig    = -306
  27. Wait    = -318
  28. AllocSig= -330
  29. FreeSig    = -336
  30. AddPort    = -354
  31. RemPort    = -360
  32. PutMsg    = -366
  33. GetMsg    = -372
  34. ReplMsg    = -378
  35. WaitPort= -384
  36. FindPort= -390
  37. SetFunc    = -420
  38.  
  39. Open    = -30    ;dos
  40. Close    = -36
  41. OutP    = -60
  42. Write    = -48
  43. Read    = -42
  44. Delete    = -72
  45. Rename    = -78
  46. Lock    = -84
  47. UnLock    = -90
  48. IoErr    = -132
  49. Delay    = -198
  50. IsInter    = -216
  51.  
  52. refram    = -456    ;intuition
  53. rethink    = -390
  54. remake    = -384
  55. movew    = -168
  56. sizew    = -288
  57. getprefs= -132
  58. setprefs= -324
  59. openwb    = -210
  60. closewb    = -78
  61. dispbeep= -96
  62. autoreq    = -348
  63.  
  64. FileReq    = -$54    ;req
  65. Purge    = -$72
  66. TextReq    = -$ae
  67. ColorReq= -$5a
  68. GetLong    = -$b4
  69.  
  70. psize    = 232        ;Preferences-Size
  71. Uhr    = $dc0000    ;Adresse Echtzeituhr
  72. UhrAlt    = $d80000    ;Uhr A2000a
  73. Custom    = $dff000
  74. scnblk    = 180
  75. ptrblk    =  10
  76.  
  77. begd    =    0    ;von DMAP benutzt
  78. dos    =    begd-4
  79. int    =    dos-4
  80. gfx    =    int-4
  81. msgp    =    gfx-4
  82. task    =    msgp-4
  83. dev    =    task-4
  84. argv    =    dev-4
  85. argz    =    argv-4
  86. wbup    =    argz-4
  87. endd    =    wbup-4
  88.  
  89. infoo    =    endd-$24
  90. dpackk    =    infoo-$44
  91. preff    =    dpackk-psize
  92. ioreqq    =    preff-$30
  93. puff    =    ioreqq-26
  94.  
  95. ;dos
  96. ;int
  97. ;gfx
  98. req    =    gfx-4    ;von Install benutzt
  99. win    =    req-4
  100. file    =    win-4
  101. freq    =    file-4
  102. treq    =    freq-4
  103. dnam    =    treq-4
  104. fnam    =    dnam-4
  105. pnam    =    fnam-4
  106. lang    =    pnam-4
  107. getl    =    lang-4
  108. enddi    =    getl-4
  109.  
  110. daten    =    0    ;vom Handler benutzt
  111. resnode    =    daten+0    ;(Library-Kopf)
  112. rname    =    resnode+34
  113. zeiger    =    rname+18
  114. bild    =    zeiger+1
  115. lfdzei    =    bild+1
  116. lfdbild    =    lfdzei+4
  117. zeisec    =    lfdbild+4
  118. bildsec    =    zeisec+4
  119. accon    =    bildsec+4
  120. hpad    =    accon+1
  121. tast    =    hpad+3
  122. datsize    =    tast+2
  123.  
  124.  
  125. txt:    macro
  126.     lea    t\1(pc),a0
  127.     bsr.w    wt
  128.     endm
  129.  
  130.  
  131. inst:    link    a5,#enddi
  132.     move.l    4.w,a6
  133.     suba.l    a1,a1
  134.     jsr    findtask(a6)
  135.     tst.l    d0
  136.     beq.w    fehl
  137.     move.l    d0,a4
  138.     tst.l    $ac(a4)
  139.     bne.s    cli
  140.     lea    $5c(a4),a0
  141.     jsr    waitport(a6)
  142.     lea    $5c(a4),a0
  143.     jsr    getmsg(a6)
  144. cli:    lea    dosn(pc),a1
  145.     jsr    openlib(a6)
  146.     move.l    d0,dos(a5)
  147.     beq.w    fehl
  148.     lea    intn(pc),a1
  149.     jsr    openlib(a6)
  150.     move.l    d0,int(a5)
  151.     beq.w    fehl
  152.     move.l    #8+46+131+31+162+356+34,d0
  153.     move.l    d0,d4
  154.     move.l    #1<<16!1,d1
  155.     jsr    allocmem(a6)
  156.     tst.l    d0
  157.     beq.w    fehl
  158.     move.l    d0,a0
  159.     move.l    d4,(a0)+
  160.     move.l    a0,treq(a5)
  161.     lea    46(a0),a0
  162.     move.l    a0,dnam(a5)
  163.     lea    131(a0),a0
  164.     move.l    a0,fnam(a5)
  165.     lea    31(a0),a0
  166.     move.l    a0,pnam(a5)
  167.     lea    162(a0),a0
  168.     move.l    a0,freq(a5)
  169.     lea    356(a0),a0
  170.     move.l    a0,getl(a5)
  171.     lea    34(a0),a0
  172.  
  173.     move.l    dos(a5),a6
  174.     move.l    #winn,d1
  175.     move.l    #1005,d2
  176.     jsr    open(a6)
  177.     move.l    d0,win(a5)
  178.     beq.w    fehl
  179.     move.l    4.w,a6
  180.     lea    reqn(pc),a1
  181.     jsr    openlib(a6)
  182.     move.l    d0,req(a5)
  183.     bne.s    reqda
  184.     txt    22
  185.     move.l    dos(a5),a6
  186.     move.l    win(a5),d1
  187.     move.l    #gret,d2
  188.     moveq    #2,d3
  189.     jsr    read(a6)
  190.     bra.w    endi
  191. reqda:    txt    1
  192.     move.l    req(a5),a6
  193.     move.l    treq(a5),a0
  194.     move.l    #ask1,0(a0)
  195.     move.l    #pos1,16(a0)
  196.     move.l    #neg1,20(a0)
  197.     move.l    #tit1,24(a0)
  198.     jsr    textreq(a6)
  199.     tst.l    d0
  200.     bne.B    nente
  201.     txt    2
  202.     bra.w    ente
  203. nente:    move.l    req(a5),a6
  204.     move.l    treq(a5),a0
  205.     move.l    #ask8,0(a0)
  206.     move.l    #pos8,16(a0)
  207.     move.l    #neg8,20(a0)
  208.     move.l    #tit8,24(a0)
  209.     jsr    textreq(a6)
  210.     tst.l    d0
  211.     beq.B    kanl
  212.     move.l    dos(a5),a6
  213.     move.l    win(a5),d1
  214.     move.l    #anl,d2
  215.     move.l    #anle-anl,d3
  216.     jsr    write(a6)
  217.     move.l    win(a5),d1
  218.     move.l    #gret,d2
  219.     moveq    #2,d3
  220.     jsr    read(a6)
  221. kanl:    txt    3
  222. nldl:    move.l    dos(a5),a6
  223.     move.l    #150,d1
  224.     jsr    delay(a6)
  225.     move.l    req(a5),a6
  226.     move.l    freq(a5),a0
  227.     move.l    #tit2,2(a0)
  228.     move.l    dnam(a5),6(a0)
  229.     move.l    fnam(a5),10(a0)
  230.     move.l    pnam(a5),14(a0)
  231.     move.l    #$1010,30(a0)
  232.     move.w    #2,34(a0)
  233.     lea    dir2,a1
  234.     move.l    dnam(a5),a2
  235. copdir:    move.b    (a1)+,(a2)+
  236.     bne.B    copdir
  237.     jsr    filereq(a6)
  238.     tst.l    d0
  239.     beq.w    forg
  240.     move.l    #2100,d0
  241.     move.l    d0,d4
  242.     moveq    #1,d1
  243.     move.l    4.w,a6
  244.     jsr    allocmem(a6)
  245.     tst.l    d0
  246.     beq.w    fehl
  247.     move.l    d0,a4
  248.     move.l    d4,(a4)+
  249.     move.l    pnam(a5),d1
  250.     move.l    #1005,d2
  251.     move.l    dos(a5),a6
  252. ts:    jsr    open(a6)
  253.     move.l    d0,d7
  254.     bne.B    lok
  255. nlok:    txt    13
  256.     bra.w    nldl
  257. lok:    move.l    d7,d1
  258.     move.l    a4,d2
  259.     move.l    #2100,d3
  260.     jsr    read(a6)
  261.     move.l    d0,d6
  262.     move.l    d7,d1
  263.     jsr    close(a6)
  264.     tst.l    d6
  265.     beq.B    nlok
  266.     bmi.B    nlok
  267.     lea    st(pc),a0
  268.     move.l    a4,a1
  269.     moveq    #4,d0
  270. vglh:    cmpm.l    (a0)+,(a1)+
  271.     dbne    d0,vglh
  272.     bne.w    kom
  273.     cmp.l    #$3e9,24(a4)
  274.     bne.w    kom
  275.     move.l    28(a4),d0
  276.     lsl.l    #2,d0
  277.     cmp.l    #$3ec,32(a4,d0.l)
  278.     bne.w    kom
  279.     move.l    36(a4,d0.l),d1
  280.     lsl.l    #2,d1
  281.     move.l    d1,d2
  282.     add.l    d0,d2
  283.     cmp.l    #$3f2,48(a4,d2.l)
  284.     bne.w    kom
  285.     add.l    #m1-st,d2
  286.     move.l    d2,d3
  287.     moveq    #0,d7
  288.     lsr.l    #1,d3
  289.     lsr.l    #1,d3
  290.     roxl.l    #1,d7
  291.     tst.l    d7
  292.     beq.B    jou
  293.     addq.l    #2,d2
  294.     moveq    #1,d7
  295. jou:    addq.l    #4,d2
  296.     move.l    d2,lang(a5)
  297.     sub.l    #4+(st1-st),d2
  298.     lsr.l    #2,d2
  299.     lea    st(pc),a0
  300.     move.l    d2,20(a0)
  301.     move.l    d2,28(a0)
  302.     lea    32(a4),a0
  303.     lea    44(a4,d0.l),a1
  304.     lea    m1(pc),a2
  305.     lea    kmap(pc),a3
  306.     move.l    d0,d2
  307.     lsr.l    #2,d2
  308.     subq.l    #1,d2
  309.     move.l    d2,-16(a3)
  310.     move.l    d0,-8(a3)
  311.     move.l    d1,d3
  312.     lsr.l    #2,d3
  313.     subq.l    #1,d3
  314.     move.l    d3,-12(a3)
  315.     move.l    d1,-4(a3)
  316. copm1:    move.l    (a0)+,(a2)+
  317.     dbra    d2,copm1
  318. copm2:    move.l    (a1)+,(a2)+
  319.     dbra    d3,copm2
  320.     tst.l    d7
  321.     beq.B    jou2
  322.     move.w    #0,(a2)+
  323. jou2:    move.l    #$3f2,(a2)+
  324.     cmp.l    #end,a2
  325.     bhi.w    fehl
  326.  
  327.     txt    4.3
  328. enl:    move.l    4.w,a6
  329.     move.l    a4,a1
  330.     move.l    -(a1),d0
  331.     jsr    freemem(a6)
  332.     bra.B    beid
  333. kom:    txt    4.2
  334.     move.l    4.w,a6
  335.     move.l    a4,a1
  336.     move.l    -(a1),d0
  337.     jsr    freemem(a6)
  338.     bra.w    nldl
  339. forg:    txt    5
  340.     move.l    #h3-st,lang(a5)
  341. beid:    txt    6
  342.     move.l    dos(a5),a6
  343.     move.l    #uhr,a4
  344.     move.b    1(a4),d4
  345.     moveq    #100,d1
  346.     jsr    delay(a6)
  347.     cmp.b    1(a4),d4
  348.     beq.B    nneu
  349.     txt    7
  350.     bra.B    uall
  351. nneu:    move.l    #uhralt,a4
  352.     move.b    1(a4),d4
  353.     moveq    #80,d1
  354.     jsr    delay(a6)
  355.     cmp.b    1(a4),d4
  356.     beq.B    nalt
  357.     txt    8
  358.     move.l    a4,uhrset+2
  359.     bra.B    uall
  360. nalt:    txt    9
  361. uall:    move.l    dos(a5),a6
  362.     move.l    #150,d1
  363.     jsr    delay(a6)
  364.     btst    #5,$dff004
  365.     beq.B    ecs
  366.     txt    10
  367.     bra.B    ecsall
  368. ecs:    txt    11
  369. ecsall:    txt    12
  370. saveit:    move.l    dos(a5),a6
  371.     move.l    #150,d1
  372.     jsr    delay(a6)
  373.     move.l    req(a5),a6
  374.     move.l    freq(a5),a0
  375.     move.l    #tit4,2(a0)
  376.     move.l    dnam(a5),6(a0)
  377.     move.l    fnam(a5),10(a0)
  378.     move.l    pnam(a5),14(a0)
  379.     move.l    #$1010,30(a0)
  380.     lea    dir4,a1
  381.     move.l    dnam(a5),a2
  382. codir1:    move.b    (a1)+,(a2)+
  383.     bne.B    codir1
  384.     lea    fil4,a1
  385.     move.l    fnam(a5),a2
  386. codir2:    move.b    (a1)+,(a2)+
  387.     bne.B    codir2
  388.     jsr    filereq(a6)
  389.     tst.l    d0
  390.     bne.B    nente2
  391.     txt    15
  392.     bra.w    ente
  393. nente2:    move.l    pnam(a5),d1
  394.     move.l    #1006,d2
  395.     move.l    dos(a5),a6
  396.     jsr    open(a6)
  397.     move.l    d0,d7
  398.     bne.B    okw
  399. nokw:    txt    13
  400.     bra.w    saveit
  401. okw:    move.l    d7,d1
  402.     move.l    #st,d2
  403.     move.l    lang(a5),d3
  404.     jsr    write(a6)
  405.     tst.l    d0
  406.     bmi.B    nokw2
  407.     cmp.l    lang(a5),d0
  408.     beq.B    okw2
  409. nokw2:    txt    13
  410.     move.l    d7,d1
  411.     jsr    close(a6)
  412.     bra.w    saveit
  413. okw2:    move.l    d7,d1
  414.     jsr    close(a6)
  415.     txt    14
  416.     move.l    req(a5),a6
  417.     move.l    treq(a5),a0
  418.     move.l    #ask5,0(a0)
  419.     move.l    #mid5,12(a0)
  420.     move.l    #pos5,16(a0)
  421.     move.l    #neg5,20(a0)
  422.     move.l    #tit5,24(a0)
  423.     jsr    textreq(a6)
  424.     tst.l    d0
  425.     beq.B    ente
  426.     txt    20
  427.     subq.l    #1,d0
  428.     beq.w    saveit
  429.     txt    19
  430.     bra.w    saveit
  431.  
  432. ente:    txt    21
  433.     move.l    req(a5),a6
  434.     move.l    treq(a5),a0
  435.     clr.l    24(a0)
  436.     move.l    #ask3,0(a0)
  437.     move.l    #mid3,12(a0)
  438.     clr.l    16(a0)
  439.     clr.l    20(a0)
  440.     move.l    #tit3,24(a0)
  441.     jsr    textreq(a6)
  442.     move.l    4.w,a6
  443.     move.l    req(a5),a1
  444.     jsr    closelib(a6)
  445. endi:    move.l    dos(a5),a6
  446.     move.l    win(a5),d1
  447.     jsr    close(a6)
  448.     move.l    4.w,a6
  449.     move.l    treq(a5),a1
  450.     move.l    -(a1),d0
  451.     jsr    freemem(a6)
  452.     move.l    int(a5),a1
  453.     jsr    closelib(a6)
  454.     move.l    dos(a5),a1
  455.     jsr    closelib(a6)
  456.     unlk    a5
  457.     moveq    #0,d0
  458.     rts
  459.  
  460. fehl:    moveq    #-1,d0
  461.     unlk    a5
  462.     rts
  463.  
  464.  
  465.  
  466. wt:    movem.l    d0-d7/a0-a6,-(a7)
  467.     move.l    dos(a5),a6    ;schreibt Text
  468.     move.l    win(a5),d1
  469.     move.l    a0,d2
  470.     moveq    #0,d3
  471. wrh:    addq.l    #1,d3
  472.     tst.b    (a0)+
  473.     bne.B    wrh
  474.     subq.l    #1,d3
  475.     move.l    d3,d4
  476. ;    lsl.l    #1,d4
  477.     jsr    write(a6)
  478.     move.l    d4,d1
  479.     jsr    delay(a6)
  480.     movem.l    (a7)+,d0-d7/a0-a6
  481.     rts
  482.  
  483. gret:    dc.w    0
  484. reqn:    dc.b    "req.library",0
  485. winn:    dc.b    "CON:0/10/639/199/DMAP-Installation",0
  486.  
  487. tit1:    dc.b    "Moin,Moin",0
  488. ask1:    dc.b    "Soll's gleich losgehen ?",0
  489. pos1:    dc.b    "Gerne",0
  490. neg1:    dc.b    "Hab' jetzt keine Zeit!",0
  491. tit2:    dc.b    "Tastaturbelegung Laden",0
  492. dir2:    dc.b    "DEVS:Keymaps",0
  493. ask3:    dc.b    "Alles klar ?     ",0
  494. mid3:    dc.b    "Un Tschüss !",0
  495. tit3:    dc.b    "Das war's",0
  496. tit4:    dc.b    "Verzeichnis auswählen",0
  497. dir4:    dc.b    "C:",0
  498. fil4:    dc.b    "DMAP",0
  499. ask5:    dc.b    "Soll's nochmal gespeichert werden ?",0
  500. neg5:    dc.b    "Lieber nicht !",0
  501. pos5:    dc.b    "Au JA !",0
  502. mid5:    dc.b    "Sofort !",0
  503. tit5:    dc.b    "Und nun ?",0
  504. tit8:    dc.b    "Wie wär's ?",0
  505. ask8:    dc.b    "Eine kleine Anleitung gefällig ?",0
  506. neg8:    dc.b    "  Nöö  ",0
  507. pos8:    dc.b    " Warum nicht ? ",0
  508. t1:    dc.b    "Willkommmen zur Installlation des Wahnsinns-"
  509.     dc.b    "Programms  DMAP !!!",10,0
  510. t2:    dc.b    "Dann halt nicht !",10,0
  511. t3:    dc.b    "Auf geht's:Jetzt wird die Tastaturbelegung geladen.",10
  512.     dc.b    "Durch Anklicken von 'Forget It' wird die Default-"
  513.     dc.b    "Tastatur ausgewählt.",10,0
  514. t4.2:    dc.b    "Das ist mir zu kompliziert !",10,0
  515. t4.3:    dc.b    "Diese Belegung gefällt mir.",10,10,0
  516. t5:    dc.b    "Die Default-Belegung tut's natürlich auch.",10,10,0
  517. t6:    dc.b    "Wollen wir mal sehen, ob Du eine Echtzeituhr hast.",10,0
  518. t7:    dc.b    "Wow, Du hast ja eine von der neuen Sorte.",10,0
  519. t8:    dc.b    "Und dieses alte Museumsstück funktioniert noch ???",10,0
  520. t9:    dc.b    "Was! Du hast ja gar keine ! Ein AMIGA ohne taugt"
  521.     dc.b    " doch gar nix !!!",10
  522.     dc.b    "Die Option 's' lässt Du lieber bleiben.",10,0
  523. t10:    dc.b    10,"Du bist ja 'up to date'. Du hast ein ECS-Agnus.",10,0
  524. t11:    dc.b    10,"Bääh! Was willst Du denn mit deinem alten Agnus"
  525.     dc.b    " anfangen ?",10,"Die Option 'f' kannst Du damit"
  526.     dc.b    " vergessen !",10,0
  527. t12:    dc.b    10,"Jetzt wird der Klumps gespeichert.",10
  528.     dc.b    "Dazu bitte Verzeichnis und Namen auswählen.",10,0
  529. t13:    dc.b    "Das hat nicht hingehauen !",10,0
  530. t14:    dc.b    "Das wäre geschafft !",10,0
  531. t15:    dc.b    "Was soll denn das nun wieder ?",10,0
  532. t19:    dc.b    "Trotzdem : Immer mit der Ruhe !",10,0
  533. t20:    dc.b    "So ist's recht !",10,0
  534. t21:    dc.b    10,"Na ja, das war's denn wohl.",10,0
  535. t22:    dc.b    "Ich brauche req.library V1.4+ !",10
  536.     dc.b    "Ansonsten mußt Du DMAP von Hand installieren.",10
  537.     dc.b    "Drücke RETURN !",10,0
  538.  
  539. anl:    dc.b    "Kurzanleitung von DMAP V2.1 !",10,10
  540.     dc.b    "Mit Hilfe dieses Installationsprogrammes kann eine"
  541.     dc.b    " gewünschte Tastatur-",10
  542.     dc.b    "belegung in DMAP eingebunden werden, und dann DMAP"
  543.     dc.b    " auf Diskette oder",10
  544.     dc.b    "Festplatte gespeichert werden. Danach kann DMAP aus"
  545.     dc.b    " dem CLI benutzt werden.",10,10
  546.     dc.b    "Folgende Optionen können benutzt werden :",10
  547.     dc.b    "d  : Damit wird die installierte Tastatur gesetzt"
  548.     dc.b    " oder wieder aktiviert.",10
  549.     dc.b    "D  : Dasselbe wie d, öffnet aber kein CLI-Fenster"
  550.     dc.b    " aus der Startup-Sequence",10
  551.     dc.b    "     unter KS 2.0+.",10
  552.     dc.b    "s  : Die aktuelle Zeit wird aus der Echtzeituhr gelesen"
  553.     dc.b    " und als",10
  554.     dc.b    "     Systemzeit gesetzt.",10
  555.     dc.b    "r  : Es wird angezeigt, welche resetfesten Programme"
  556.     dc.b    " vorhanden sind.",10
  557.     dc.b    "     So werden fast alle Viren gefunden.",10
  558.     dc.b    "R  : Wie r, unterdrückt aber die Meldung: Nichts"
  559.     dc.b    " resetfest",10
  560.     dc.b    "b##: Der Bildschirm wird nach der Zeit xx Sekunden"
  561.     dc.b    " schwarzgeschaltet.",10
  562.     dc.b    "m##: Der Mauszeiger wird nach der Zeit xx Sekunden"
  563.     dc.b    " ausgeschaltet.",10
  564.     dc.b    "t  : Der Mausbeschleuniger wird eingeschaltet",10
  565.     dc.b    "T  : Mausbeschleuniger ausschalten",10
  566.     dc.b    "g  : Das aktuelle Fenster wird auf maximale Größe"
  567.     dc.b    " vergrößert.",10
  568.     dc.b    "f  : Die Bildwechselfrequenz wird auf ca. 55 Hz (PAL)"
  569.     dc.b    " bzw. 70 Hz (NTSC)",10
  570.     dc.b    "     vergrößert. Das Bild flimmert dann weniger.",10
  571.     dc.b    "F  : Option f ausschalten",10
  572.     dc.b    "l  : Sicherheitsabfrage vor dem Löschen von Files.",10
  573.     dc.b    "L  : Option l ausschalten",10
  574.     dc.b    "a# : Backup-Abfrage vor dem Überschreiben von Files",10
  575.     dc.b    "A  : Option A ausschalten",10,10
  576.     dc.b    "## steht für eine (mehrstellige) Zahl.",10
  577.     dc.b    "# steht für eine Ziffer.",10
  578.     dc.b    "Es können mehrere Optionen gleichzeitig angegeben"
  579.     dc.b    " werden.",10
  580.     dc.b    "Folgt nach b oder m keine Zahl, so wird die"
  581.     dc.b    " entsprechende",10
  582.     dc.b    "Funktion abgeschaltet.",10
  583.     dc.b    "Bildschirm ausblenden: SHIFT-Links + CTRL + A ",10
  584.     dc.b    "Anwendungsbeispiel: DMAP b300da2r",10,10
  585.     dc.b    "Bitte RETURN drücken.",10
  586. anle:
  587.  
  588.  
  589. ;****************************************************************
  590. ;        Hier beginnt das Programm selbst
  591. ;****************************************************************
  592.  
  593.     even
  594. st:    dc.l    $3f3,0,1,0,0,(h2-st1+3)/4,$3e9,(h2-st1+3)/4 ;Hunk-Länge
  595. st1:    link    a5,#endd-$24-$44-psize-$30-26
  596.     move.l    a0,argv(a5)
  597.     move.l    d0,argz(a5)
  598.     move.l    4.w,a6
  599.     lea    dosn(pc),a1
  600.     jsr    openlib(a6)
  601.     move.l    d0,dos(a5)
  602.     beq.b    fehlj
  603.     lea    intn(pc),a1
  604.     jsr    openlib(a6)
  605.     move.l    d0,int(a5)
  606.     beq.b    fehlj
  607.     lea    gfxn(pc),a1
  608.     jsr    openlib(a6)
  609.     move.l    d0,gfx(a5)
  610.     beq.b    fehlj
  611.     suba.l    a1,a1
  612.     jsr    findtask(a6)
  613.     move.l    d0,task(a5)
  614. fehlj:    beq.b    fehler
  615.     move.l    d0,a4
  616.     lea    $5c(a4),a0
  617.     move.l    a0,msgp(a5)
  618.  
  619. hauptl:    subq.l    #1,argz(a5)    ;Hauptschleife
  620.     beq.b    ende
  621.     move.l    argv(a5),a0
  622.     move.b    (a0),d0
  623.     addq.l    #1,argv(a5)
  624.     lea    zeitab(pc),a0
  625.     lea    jmptab(pc),a1
  626.     lea    st(pc),a2
  627.     lea    verwe(pc),a3
  628.     move.l    #$3857f0c4,d1
  629.     eor.l    #$7f3e95b6,d1
  630.     cmp.l    -8(a3),d1
  631.     bne.b    ende
  632.     moveq    #-1,d1
  633. noo:    tst.b    (a0)
  634.     beq.s    hauptl
  635.     addq.w    #1,d1
  636.     cmp.b    (a0)+,d0
  637.     bne.s    noo
  638.     lsl.w    #2,d1
  639.     move.l    0(a1,d1.w),a0
  640.     add.l    a2,a0
  641.     move.l    4.w,a6
  642.     jsr    (a0)
  643.     bra.s    hauptl
  644.  
  645. fehler:    moveq    #-1,d0    ;Falls was nicht stimmt
  646.     unlk    a5
  647.     rts
  648.  
  649. ende:    move.l    4.w,a6
  650.     move.l    gfx(a5),a1    ;Un Tschüssssssssss
  651.     jsr    closelib(a6)
  652.     move.l    int(a5),a1
  653.     jsr    closelib(a6)
  654.     move.l    dos(a5),a1
  655.     jsr    closelib(a6)
  656.     unlk    a5
  657.     moveq    #0,d0
  658.     rts
  659.  
  660.  
  661. clrio:    lea    ioreqq(a5),a1    ;initialisiert IO-Request
  662.     move.l    a1,a0
  663.     moveq    #$2f,d0
  664. clst3:    clr.b    (a0)+
  665.     dbra    d0,clst3
  666.     move.b    #5,8(a1)
  667.     move.l    msgp(a5),a0
  668.     move.l    a0,14(a1)
  669.     move.w    #$30,18(a1)
  670.     rts        ;a1:IO-Request
  671.  
  672.  
  673. infos:    move.l    dos(a5),a6        ;???
  674.     jsr    outp(a6)
  675.     move.l    d0,d1
  676.     beq.s    wb1
  677.     lea    verw(pc),a0
  678.     move.l    a0,d2
  679.     move.l    #verwe-verw,d3
  680.     jsr    write(a6)
  681. wb1:    move.l    4.w,a6
  682.     rts
  683.  
  684. setmap2: moveq    #-1,d7            ;DDD
  685.     bra.s    setgh
  686. setmap:    moveq    #0,d7            ;ddd
  687. setgh:    bsr.s    clrio
  688.     move.w    #$30,18(a1)
  689.     lea    condev(pc),a0
  690.     moveq    #-1,d0
  691.     moveq    #0,d1
  692.     jsr    opendev(a6)
  693.     tst.l    d0
  694.     bne.w    fehler
  695.  
  696. res:    lea    keyres(pc),a1
  697.     moveq    #0,d0
  698.     jsr    openres(a6)
  699.     tst.l    d0
  700. fehlj2:    beq.w    fehler
  701.     move.l    d0,a0
  702.     lea    14(a0),a0
  703.     move.l    a0,d4
  704.     lea    kmap(pc),a4
  705.     move.l    10(a4),a1
  706.     add.l    a4,a1
  707.     jsr    findname(a6)
  708.     move.l    d0,d3
  709.     bne.s    noadd
  710.  
  711. addh:    move.l    -8(a4),d0
  712.     moveq    #1,d1
  713.     jsr    allocmem(a6)
  714.     move.l    d0,d3
  715.     beq.b    fehlj2
  716.     move.l    a4,a0
  717.     add.l    -8(a4),a0
  718.     move.l    -12(a4),d1
  719.     move.l    a4,a1
  720.     moveq    #0,d0
  721. wdh:    move.l    0(a0,d0),d2
  722.     add.l    d3,0(a1,d2)
  723.     addq.l    #4,d0
  724.     dbf    d1,wdh
  725.     move.l    -16(a4),d0
  726.     move.l    d3,a2
  727. cpy:    move.l    (a1)+,(a2)+
  728.     dbf    d0,cpy
  729.     move.l    d4,a0
  730.     move.l    d3,a1
  731.     jsr    addhead(a6)
  732. noadd:    move.l    d3,a2    ;keymap->a2
  733.  
  734. defkm:    lea    ioreqq(a5),a1
  735.     move.l    #$20,36(a1)
  736.     lea    14(a2),a3
  737.     move.l    a3,40(a1)
  738.     move.w    #12,28(a1)
  739.     jsr    doio(a6)
  740.     tst.l    d0
  741.     bne.w    fehler
  742.  
  743.     tst.w    d7
  744.     bne.w    endmap        WB-START ?
  745. nochm:    lea    infoo(a5),a0    ;Clear dpack,info
  746.     moveq    #$23,d0
  747. clst1:    clr.b    (a0)+
  748.     dbra    d0,clst1
  749.     lea    dpackk(a5),a0
  750.     move.l    a0,a1
  751.     moveq    #$43,d0
  752. clst2:    clr.b    (a1)+
  753.     dbra    d0,clst2
  754.     move.l    task(a5),a1
  755.     lea    $14(a0),a3
  756.     move.l    a3,$a(a0)
  757.     move.l    a0,$14(a0)
  758.     lea    $5c(a1),a3
  759.     move.l    a3,$e(a0)
  760.     move.l    a3,$18(a0)
  761.     move.l    #$19,$1c(a0)
  762.     lea    infoo(a5),a4
  763.     move.l    a4,d0
  764.     lsr.l    #2,d0
  765.     move.l    d0,$28(a0)
  766.     move.l    a0,d6
  767.     move.l    $a4(a1),a1
  768.     exg    a0,a1
  769.     jsr    putmsg(a6)
  770.     move.l    a3,a0
  771. waitp:    jsr    waitport(a6)
  772.     move.l    d0,d5
  773.     move.l    a3,a0
  774.     jsr    getmsg(a6)
  775.     tst.l    d0
  776.     beq.w    fehler
  777.     cmp.l    d6,d5
  778.     bne.B    waitp
  779.     lea    infoo(a5),a0
  780.     tst.l    $20(a0)
  781.     beq.s    nochm
  782.     move.l    $20(a0),a0
  783.     move.l    $18(a0),a0
  784.     lea    ioreqq(a5),a1
  785.     move.l    #$20,36(a1)
  786.     lea    14(a2),a3
  787.     move.l    a3,40(a1)
  788.     move.w    #10,28(a1)
  789.     clr.w    30(a1)
  790.     move.l    a0,24(a1)
  791.     jsr    doio(a6)
  792.     tst.l    d0
  793.     bne.w    fehler
  794.  
  795. endmap:    lea    ioreqq(a5),a1
  796.     clr.w    28(a1)
  797.     move.l    #-1,24(a1)
  798.     jsr    closedev(a6)
  799.     rts
  800.  
  801.  
  802. zeit:    move.l    dos(a5),a6        ;sss
  803.     lea    uhr,a4
  804.     jsr    outp(a6)
  805.     move.l    d0,d1
  806.     beq.s    wb
  807. uhrset:    lea    puff(a5),a3
  808.     moveq    #0,d3
  809.     lea    dat(pc),a0
  810. next:    moveq    #0,d0
  811.     move.b    (a0)+,d0
  812.     btst    #0,d0
  813.     beq.s    zei
  814.     move.b    0(a4,d0),d0
  815.     and.b    #$f,d0
  816.     add.b    #$30,d0
  817. zei:    bsr.b    wc
  818.     cmp    #10,d0
  819.     bne.s    next
  820.     move.l    a3,d2
  821.     jsr    write(a6)
  822. wb:    bra.s    jpur
  823.                 ;Unterroutinen :
  824. wc:    move.b    d0,0(a3,d3)    ;Write Char
  825.     addq.l    #1,d3
  826.     rts
  827.  
  828. get:    move.b    0(a4,d6),d1    ;Get Clock
  829.     move.b    4(a4,d6),d0
  830.     addq.l    #8,d6
  831.     and.w    #$f,d0
  832.     and.w    #$f,d1
  833.     mulu    #10,d0
  834.     add.w    d1,d0
  835.     ext.l    d0
  836.     rts
  837.  
  838. jpur:    move.l    4.w,a6
  839.     move.b    53(a4),d0
  840.     or.b    #1,d0
  841.     move.b    d0,53(a4)
  842. clkw:    btst    #1,53(a4)
  843.     bne.b    clkw
  844.     moveq    #0,d7
  845.     moveq    #1,d6
  846.     bsr.b    get    ;sec
  847.     move.b    d0,d7
  848.     bsr.b    get    ;min
  849.     mulu    #smin,d0
  850.     add.l    d0,d7
  851.     bsr.b    get    ;std
  852.     mulu    #sst,d0
  853.     add.l    d0,d7
  854.     bsr.b    get    ;tag
  855.     subq.l    #1,d0
  856.     move.l    d0,d5
  857.     bsr.b    get    ;monat
  858.     cmp.w    #12,d0
  859.     bhi.w    endtim
  860.     move.l    d0,d2
  861.     lea    mon(pc),a0
  862.     move.b    #28,1(a0)    ;Pfusch !
  863.     bsr.b    get    ;jahr
  864.     cmp.w    #140,d0
  865.     bhi.w    endtim
  866.     move.b    53(a4),d3
  867.     and.b    #$0e,d3
  868.     move.b    d3,53(a4)
  869.     move.l    d0,d3
  870.     and.w    #3,d0
  871.     bne.s    nosj
  872.     move.b    #29,1(a0)
  873. nosj:    subq.l    #2,d2
  874.     bmi.s    jan
  875. madd:    move.b    0(a0,d2),d0
  876.     ext.w    d0
  877.     add.w    d0,d5
  878.     dbf    d2,madd
  879. jan:    cmp.b    #78,d3
  880.     beq.s    tset
  881.     subq.l    #1,d3
  882.     moveq    #0,d1
  883. jadd:    add.w    #tjahr,d5
  884.     move.l    d3,d0
  885.     and.w    #3,d0
  886.     bne.s    nosj2
  887.     addq.l    #1,d5
  888. nosj2:    cmp.b    #78,d3
  889.     dbeq    d3,jadd
  890.     move.l    #stag,d1
  891.     move.l    d5,d0
  892.     bsr.b    mul
  893.     add.l    d0,d7
  894.     cmp.l    #$70000000,d7
  895.     bhi.s    endtim
  896.  
  897. tset:    bsr.w    clrio
  898.     move.l    a1,a2
  899.     move.w    #$28,18(a1)
  900.     lea    timdev(pc),a0
  901.     moveq    #1,d0
  902.     moveq    #0,d1
  903.     jsr    opendev(a6)
  904.     tst.l    d0
  905. fehlj4:    bne.w    fehler
  906.     move.l    a2,a1
  907.     move.w    #11,28(a1)
  908. ;    clr.w    30(a1)
  909.     move.l    d7,32(a1)
  910. ;    clr.l    36(a1)
  911. ;    clr.l    40(a1)
  912.     jsr    doio(a6)
  913.     tst.l    d0
  914.     bne.s    fehlj4
  915.     move.l    a2,a1
  916.     clr.l    28(a1)
  917.     jsr    closedev(a6)
  918. endtim:    rts
  919.  
  920. mul:    move.l    d1,d2        ;Multipliziere
  921.     mulu    d0,d2
  922.     move.l    d1,d3
  923.     swap    d3
  924.     mulu    d0,d3
  925.     swap    d3
  926.     clr.w    d3
  927.     add.l    d2,d3
  928.     move.l    d3,d0
  929.     rts
  930.  
  931. vector2: moveq    #-1,d7            ;RRR
  932.     bra.s    vegh
  933. vector:    moveq    #0,d7            ;rrr
  934. vegh:    move.l    dos(a5),a4
  935.     exg.l    a4,a6
  936.     moveq    #2,d0
  937.     lea    $2a(a4),a0
  938. chk1:    tst.l    (a0)+
  939.     bne.s    vir
  940.     dbra    d0,chk1
  941.     moveq    #2,d0
  942.     lea    $222(a4),a0
  943. chk2:    tst.l    (a0)+
  944.     bne.s    vir
  945.     dbra    d0,chk2
  946.     tst.w    d7
  947.     bne.w    wb2
  948.     jsr    outp(a6)
  949.     move.l    d0,d1
  950.     beq.w    wb2
  951.     lea    vecok(pc),a0
  952.     move.l    a0,d2
  953.     move.l    #vecoke-vecok,d3
  954.     jsr    write(a6)
  955.     bra.w    wb2
  956. vir:    move.w    d7,wbup(a5)
  957.     jsr    outp(a6)
  958.     move.l    d0,d1
  959.     move.l    d0,d5
  960.     beq.w    wb2
  961.     lea    virus(pc),a0
  962.     move.l    a0,d2
  963.     move.l    #viruse-virus,d3
  964.     jsr    write(a6)
  965.     exg.l    a3,a6
  966.     move.l    int(a5),a6
  967.     move.l    60(a6),a0
  968.     jsr    dispbeep(a6)
  969.     exg.l    a3,a6
  970.     move.l    50(a4),d7
  971.     beq.s    nowarm
  972.     lea    warm(pc),a0
  973.     bsr.w    capt
  974.     bsr.w    adr
  975. nowarm:    move.l    46(a4),d7
  976.     beq.s    nocool
  977.     lea    cool(pc),a0
  978.     bsr.w    capt
  979.     bsr.w    adr
  980. nocool:    move.l    42(a4),d7
  981.     beq.s    nocold
  982.     lea    cold(pc),a0
  983.     bsr.w    capt
  984.     move.l    d7,a2
  985.     bsr.w    adr
  986.     moveq    #0,d0
  987.     moveq    #10,d1
  988. setp:    add.l    (a2)+,d0
  989.     dbra    d1,setp
  990.     cmp.l    #$c538438d,d0
  991.     bne.s    nocold
  992.     move.l    d5,d1
  993.     lea    spatch(pc),a0
  994.     move.l    a0,d2
  995.     move.l    #spatche-spatch,d3
  996.     jsr    write(a6)
  997. nocold:    bsr.w    ret
  998.     move.l    550(a4),d4
  999.     beq.s    nores
  1000. reswi:    bclr    #31,d4
  1001.     move.b    #">",d7
  1002.     bsr.w    cr
  1003.     move.l    d4,a3
  1004. tres:    move.l    (a3)+,d4
  1005.     beq.s    nores
  1006.     btst    #31,d4
  1007.     bne.s    reswi
  1008.     move.l    d4,a0
  1009.     move.l    14(a0),a2
  1010.     movem.l    a0,-(a7)
  1011.     tst.l    14(a0)
  1012.     beq.s    nwresn
  1013. wresn:    move.b    (a2)+,d7
  1014.     beq.s    nwresn
  1015.     bsr.s    cr
  1016.     bra.s    wresn
  1017. nwresn:    bsr.s    ret
  1018.     move.b    #"*",d7
  1019.     bsr.s    cr
  1020.     movem.l    (a7)+,a0
  1021.     move.l    18(a0),a2
  1022.     tst.l    18(a0)
  1023.     beq.s    nwresid
  1024. wresid:    move.b    (a2)+,d7
  1025.     beq.s    nwresid
  1026.     bsr.s    cr
  1027.     bra.s    wresid
  1028. nwresid:bsr.s    ret
  1029.     bra.s    tres
  1030. nores:    tst.w    wbup(a5)
  1031.     beq.s    wb2
  1032.     move.l    d5,d1
  1033.     lea    drurt(pc),a0
  1034.     move.l    a0,d2
  1035.     move.l    #drurte-drurt,d3
  1036.     jsr    write(a6)
  1037.     move.l    d5,d1
  1038.     lea    puff(a5),a0
  1039.     move.l    a0,d2
  1040.     moveq    #1,d3
  1041.     jsr    read(a6)
  1042. wb2:    rts
  1043.  
  1044. capt:    move.l    d5,d1        ;Unterprogramme
  1045.     move.l    a0,d2
  1046.     moveq    #5,d3
  1047.     jsr    write(a6)
  1048.     rts
  1049.  
  1050. ret:    move.b    #10,d7    ;Return
  1051. cr:    lea    puff(a5),a0    ;Ein Zeichen
  1052.     move.b    d7,(a0)
  1053.     move.l    a0,d2
  1054. char:    move.l    #1,d3
  1055.     move.l    d5,d1
  1056.     jsr    write(a6)
  1057.     rts
  1058.  
  1059. adr:;    lsl.l    #8,d7    ;Gibt Adresse aus
  1060.     move.w    #7,d6
  1061. nib:    moveq    #0,d1
  1062.     move.w    #3,d2
  1063. rot:    roxl.l    #1,d7
  1064.     roxl.b    #1,d1
  1065.     dbf    d2,rot
  1066.     lea    hex(pc),a0
  1067.     move.l    a0,d2
  1068.     add.l    d1,d2
  1069.     bsr.s    char
  1070.     dbf    d6,nib
  1071.     bsr.s    ret
  1072.     rts
  1073.  
  1074. hex:    dc.b    "0123456789abcdef"    ;für adr
  1075.     even
  1076.  
  1077.  
  1078. resize:    move.l    int(a5),a6        ;ggg
  1079.     move.l    $34(a6),a3
  1080.     move.l    $2e(a3),a1
  1081.     moveq    #-1,d2
  1082.     move.l    12(a1),d3
  1083.     sub.w    10(a3),d3
  1084.     sub.w    #10,d3
  1085.     move.w    d3,d1
  1086.     bpl.s    klein
  1087.     moveq    #0,d2
  1088.     moveq    #0,d0
  1089.     move.l    a3,a0
  1090.     jsr    sizew(a6)
  1091. klein:    moveq    #0,d0
  1092.     sub.w    4(a3),d0
  1093.     moveq    #10,d1
  1094.     sub.w    6(a3),d1
  1095.     move.l    a3,a0
  1096.     jsr    movew(a6)
  1097.     moveq    #0,d1
  1098.     tst.b    d2
  1099.     beq.s    gross
  1100.     move.w    d3,d1
  1101. gross:    swap    d3
  1102.     sub.w    8(a3),d3
  1103.     move.w    d3,d0
  1104.     move.l    a3,a0
  1105.     jsr    sizew(a6)
  1106.     jsr    rethink(a6)
  1107.     rts
  1108.  
  1109.  
  1110. freqoff: lea    custom,a4        ;FFF
  1111.     move.w    #$0000,$1dc(a4)
  1112.     move.w    #$011c,d4
  1113.     moveq    #$0000,d5
  1114.     move.w    #$0100,d6
  1115.     moveq    #$001b,d7
  1116.     bra.s    ks1
  1117.  
  1118. freqon:    lea    custom,a4        ;fff
  1119.     move.w    #$011c,d4    ;Zeilenzahl=($2625a/(10*Freq.))and$ffff
  1120.     move.w    #$00ef,d5    ;Verschiebung (Pref.)
  1121.     move.w    #$0100,d6    ;Zeilenzahl (Screen)
  1122.     moveq    #$001b,d7    ;Verschiebung (View)
  1123.     cmp.b    #50,530(a6)    ;55Hz oder 70Hz ?
  1124.     beq.s    pal
  1125.     move.w    #$00df,d4
  1126.     move.w    #$00ea,d5
  1127.     move.w    #$00c8,d6
  1128.     moveq    #$0016,d7
  1129. pal:    move.w    d4,$1c8(a4)
  1130.     move.w    #$00e2,$1c0(a4)
  1131.     move.w    #$0080,$1dc(a4)
  1132.     cmp.w    #36,20(a6)    ;EXEC-Version >= 36 ? (KS2.x)
  1133.     bcs.s    ks1
  1134.     move.w    #$00f1,d5
  1135.     moveq    #$001d,d7
  1136.     cmp.b    #50,530(a6)    ;55Hz oder 70Hz ?
  1137.     beq.s    ks1
  1138.     moveq    #$0017,d7    NTSC-Modus
  1139. ks1:    move.l    #psize,d3
  1140.     lea    preff(a5),a0
  1141.     move.l    int(a5),a6
  1142.     move.l    d3,d0
  1143.     jsr    getprefs(a6)
  1144.     move.l    d0,a0
  1145.     move.w    d5,$76(a0)
  1146.     move.l    d3,d0
  1147.     moveq    #-1,d1
  1148.     jsr    setprefs(a6)
  1149.     move.l    gfx(a5),a3
  1150.     move.w    d4,$d4(a3)
  1151.     move.w    d6,$d8(a3)
  1152.     move.l    $22(a3),a0
  1153.     move.w    d7,$0c(a0)
  1154.     jsr    rethink(a6)
  1155. nclo:    rts
  1156.  
  1157.  
  1158. delon:    moveq    #delete,d7    ;Offset        ;lll
  1159.     moveq    #-fki,d5    ;Einsprung
  1160.     bra.s    DPatch
  1161. bakon:    bsr    getnum
  1162.     cmp.w    #9,d0
  1163.     bhi.w    dele
  1164.     move.w    d0,d6
  1165.     beq.w    dele
  1166.     moveq    #open,d7    ;Offset        ;aaa
  1167.     moveq    #opfkt-delfkt-fki,d5
  1168.  
  1169. DPatch:    move.l    dos(a5),a4
  1170.     add.l    d7,a4
  1171.     move.w    #$4ef9,d4
  1172.     moveq    #0,d3
  1173.     cmp.w    (a4),d4
  1174.     bne.s    altt
  1175.     move.l    2(a4),a0
  1176.     sub.l    d5,a0
  1177.     move.l    12(a0),d0
  1178.     cmp.l    int(a5),d0
  1179.     beq.s    dele
  1180.     moveq    #-1,d3
  1181.     bra.s    neuu
  1182. altt:    cmp.w    #$6000,2(a4)
  1183.     bne.s    dele
  1184. neuu:    move.l    #delfkte-delfkt-fki,d2
  1185.     move.l    d2,d0
  1186.     moveq    #1,d1
  1187.     jsr    allocmem(a6)
  1188.     move.l    d0,a3
  1189.     tst.l    d0
  1190.     beq.s    dele
  1191.     lea    -fki(a3),a0
  1192.     move.w    d2,d0
  1193.     sub.w    #1-fki,d0
  1194.     lea    delfkt(pc),a1
  1195. rtu:    move.b    (a1)+,(a0)+
  1196.     dbra    d0,rtu
  1197.     move.w    d4,(a3)
  1198.     move.l    2(a4),2(a3)
  1199.     tst.w    d3
  1200.     bne.s    neuu2
  1201.     lea    4(a4),a0
  1202.     move.w    (a0),d0
  1203.     ext.l    d0
  1204.     add.l    d0,a0
  1205.     move.l    a0,4(a3)
  1206.     move.w    (a4),(a3)
  1207.     move.w    d4,2(a3)
  1208. neuu2:    move.l    d2,8(a3)
  1209.     move.l    int(a5),12(a3)
  1210.     move.w    d6,16(a3)
  1211.     move.l    a3,d0
  1212.     add.l    d5,d0
  1213.     move.l    d7,a0
  1214.     move.l    dos(a5),a1
  1215.     jsr    setfunc(a6)
  1216. dele:    rts
  1217.  
  1218. deloff:    moveq    #delete,d7    ;Offset        ;LLL
  1219.     moveq    #-fki,d6        ;Einsprung
  1220.     bra.s    RPatch
  1221. bakoff:    moveq    #open,d7            ;AAA
  1222.     moveq    #opfkt-delfkt-fki,d6
  1223.  
  1224. RPatch:    move.l    dos(a5),a4
  1225.     add.l    d7,a4
  1226.     cmp.w    #$4ef9,(a4)
  1227.     bne.s    deloe
  1228.     move.l    2(a4),a1
  1229.     sub.l    d6,a1
  1230.     move.l    12(a1),d0
  1231.     cmp.l    int(a5),d0
  1232.     bne.s    deloe
  1233.     move.w    0(a1),(a4)
  1234.     move.l    2(a1),2(a4)
  1235.     cmp.w    #$4ef9,(a1)
  1236.     beq.s    boing
  1237.     move.w    #$6000,2(a4)
  1238.     lea    4(a4),a2
  1239.     move.l    4(a1),d0
  1240.     sub.l    a2,d0
  1241.     move.w    d0,(a2)
  1242. boing:    move.l    8(a1),d0
  1243.     jsr    freemem(a6)
  1244. deloe:    rts
  1245.  
  1246.  
  1247. scnon:    bsr.w    blkon            ;bbb
  1248.     bsr.w    getnum
  1249.     move.l    d0,bildsec(a3)
  1250.     bra.s    blkoff
  1251.  
  1252. ptron:    bsr.w    blkon            ;mmm
  1253.     bsr.w    getnum
  1254.     move.l    d0,zeisec(a3)
  1255.     bra.s    blkoff
  1256.  
  1257. turon:    bsr.w    blkon            ;ttt
  1258.     move.b    #1,accon(a3)
  1259.     bra.s    blkoff
  1260.  
  1261. turoff:    bsr.s    blkon            ;TTT
  1262.     move.b    #0,accon(a3)
  1263. ;    bra.s    blkoff
  1264.  
  1265. blkoff: tst.l    bildsec(a3)
  1266.     bne.s    jau
  1267.     tst.l    zeisec(a3)
  1268.     bne.s    jau
  1269.     tst.b    accon(a3)
  1270.     beq.s    nau
  1271. jau:    rts
  1272. nau:    move.w    #$81a0,custom+$96
  1273.     move.l    a3,a1
  1274.     jsr    remres(a6)
  1275.     bsr.w    clrio
  1276.     lea    inpdev(pc),a0
  1277.     moveq    #0,d0
  1278.     move.l    a1,a2
  1279.     moveq    #0,d1
  1280.     jsr    opendev(a6)
  1281.     tst.l    d0
  1282. fehlj6:    bne.w    fehler
  1283.     move.w    #10,28(a2)
  1284.     moveq    #22,d0
  1285.     move.l    d0,36(a2)
  1286.     lea    intpos-datpos(a3),a0
  1287.     move.l    a0,40(a2)
  1288.     move.l    a2,a1
  1289.     jsr    doio(a6)
  1290.     tst.l    d0
  1291.     bne.s    fehlj6
  1292.     move.l    a2,a1
  1293.     jsr    closedev(a6)
  1294.     move.l    a3,a1
  1295.     sub.w    16(a3),a1    ;datpos
  1296.     moveq    #0,d0
  1297.     move.w    16(a3),d0
  1298.     add.w    18(a3),d0
  1299.     ext.l    d0
  1300.     jsr    freemem(a6)
  1301.     rts
  1302.  
  1303. blkon:    lea    blkres(pc),a1    ;Blanker-Installation
  1304.     moveq    #0,d0
  1305.     jsr    openres(a6)
  1306.     move.l    d0,a3
  1307.     tst.l    d0
  1308.     bne.w    resda
  1309.     move.l    #endpos,d0
  1310.     move.l    #1<<16!1,d1
  1311.     jsr    allocmem(a6)
  1312.     move.l    d0,a4
  1313.     move.l    d0,a1
  1314.     lea    handbeg(pc),a0
  1315.     move.l    #(datpos+3)/4,d0
  1316. bcopy:    move.l    (a0)+,(a1)+
  1317.     dbra    d0,bcopy
  1318.     lea    datpos(a4),a3
  1319.     move.b    #8,resnode+8(a3)
  1320.     lea    rname(a3),a2
  1321.     move.l    a2,a1
  1322.     lea    blkres(pc),a0
  1323. ncopy:    move.b    (a0)+,(a1)+
  1324.     bne.s    ncopy
  1325.     move.l    a2,resnode+10(a3)
  1326.     move.w    #datpos,resnode+16(a3)
  1327.     move.w    #endpos-datpos,resnode+18(a3)
  1328.     move.w    #2,20(a3)
  1329.     move.w    #1,22(a3)
  1330.     move.l    a2,resnode+24(a3)
  1331.     move.w    #$0200+52,intpos+8(a4)    ;Priorität
  1332.     move.l    a2,intpos+10(a4)    ;Name
  1333.     move.l    a3,intpos+14(a4)    ;Data
  1334.     move.l    a4,intpos+18(a4)    ;Code
  1335.     move.l    a3,a1
  1336.     jsr    addres(a6)
  1337.  
  1338.     bsr.w    clrio
  1339.     move.l    a1,a2
  1340.     move.w    #$28,18(a1)
  1341.     lea    timdev(pc),a0
  1342.     moveq    #1,d0
  1343.     moveq    #0,d1
  1344.     jsr    opendev(a6)
  1345.     tst.l    d0
  1346.     bne.s    fehlj5
  1347.     move.l    a2,a1
  1348.     move.w    #10,28(a1)
  1349.     jsr    doio(a6)
  1350.     tst.l    d0
  1351.     bne.s    fehlj5
  1352.     move.l    a2,a1
  1353.     clr.l    28(a1)
  1354.     jsr    closedev(a6)
  1355.     move.l    32(a2),d0
  1356.     move.l    d0,lfdzei(a3)    ;Initialisieren
  1357.     move.l    d0,lfdbild(a3)
  1358.     clr.b    tast(a3)
  1359.  
  1360.     bsr.w    clrio
  1361.     lea    inpdev(pc),a0
  1362.     moveq    #0,d0
  1363.     move.l    a1,a2
  1364.     moveq    #0,d1
  1365.     jsr    opendev(a6)
  1366.     tst.l    d0
  1367. fehlj5:    bne.w    fehler
  1368.     move.w    #9,28(a2)
  1369.     moveq    #22,d0
  1370.     move.l    d0,36(a2)
  1371.     lea    intpos(a4),a0
  1372.     move.l    a0,40(a2)
  1373.     move.l    a2,a1
  1374.     jsr    doio(a6)
  1375.     tst.l    d0
  1376.     bne.b    fehlj5
  1377.     move.l    a2,a1
  1378.     jsr    closedev(a6)
  1379. resda:    rts        ;a3:datpos
  1380.  
  1381. getnum:    move.l    argv(a5),a0    ;Holt Zahl aus Argument nach d0.l
  1382.     moveq    #0,d0
  1383. goon:    move.b    (a0)+,d1
  1384.     cmp.b    #"0",d1
  1385.     blo.s    genug
  1386.     cmp.b    #"9",d1
  1387.     bhi.s    genug
  1388.     sub.b    #"0",d1
  1389.     ext.w    d1
  1390.     mulu    #10,d0
  1391.     add.w    d1,d0
  1392.     addq.l    #1,argv(a5)
  1393.     subq.l    #1,argz(a5)
  1394.     bne.s    goon
  1395.     addq.l    #1,argz(a5)
  1396. genug:    ext.l    d0
  1397.     rts
  1398.  
  1399.  
  1400. ***** Input-Event-Handler ! *****
  1401.  
  1402. handbeg:    
  1403.     movem.l    a0-a3,-(sp)
  1404.     lea    custom,a2
  1405. schleif:move.b    4(a0),d1
  1406. timer:    cmp.b    #6,d1
  1407.     bne.s    rawmou
  1408.     tst.b    bild(a1)
  1409.     bne.b    weith
  1410.     move.l    bildsec(a1),d1
  1411.     beq.s    ptrc
  1412.     move.l    14(a0),d0
  1413.     sub.l    lfdbild(a1),d0
  1414.     cmp.l    d1,d0
  1415.     blo.s    ptrc
  1416.     bsr.b    bildaus
  1417.     bra.b    weith
  1418. ptrc:    tst.b    zeiger(a1)
  1419.     bne.b    weith
  1420.     move.l    zeisec(a1),d1
  1421.     beq.b    weith
  1422.     move.l    14(a0),d0
  1423.     sub.l    lfdzei(a1),d0
  1424.     cmp.l    d1,d0
  1425.     blo.b    weith
  1426.     bsr.b    zeigaus
  1427.     bra.b    weith
  1428.  
  1429. rawmou:    cmp.b    #2,d1
  1430.     bne.w    rawkey
  1431.     tst.b    accon(a1)
  1432.     beq.s    accoff
  1433.     move.w    10(a0),d1    ;Maus beschleunigen
  1434.     bsr.b    accalc
  1435.     move.w    d1,10(a0)
  1436.     move.w    12(a0),d1
  1437.     bsr.b    accalc
  1438.     move.w    d1,12(a0)
  1439. accoff:    bsr.b    bildan
  1440.     bsr.b    zeigan
  1441. ;    bra.s    weith
  1442.  
  1443. weith:    move.l    (a0),d0
  1444.     move.l    d0,a0
  1445.     bne.b    schleif
  1446.     movem.l    (sp)+,a0-a3
  1447.     move.l    a0,d0
  1448.     rts
  1449.  
  1450. bildan:    move.w    #$8000+$180,$96(a2)
  1451.     clr.b    bild(a1)
  1452.     move.l    14(a0),lfdbild(a1)
  1453.     rts
  1454.  
  1455. zeigan:    move.w    #$8000+$20,$96(a2)
  1456.     clr.b    zeiger(a1)
  1457.     move.l    14(a0),lfdzei(a1)
  1458.     rts
  1459.  
  1460. bildaus: move.w    #0+$180,$96(a2)
  1461.     move.w    #0,$180(a2)
  1462.     move.b    #1,bild(a1)
  1463. zeigaus: move.w    #0+$20,$96(a2)
  1464.     moveq    #0,d0
  1465.     move.l    d0,$144(a2)
  1466.     move.b    #1,zeiger(a1)
  1467.     rts
  1468.  
  1469. accalc:    move.w    d1,d2
  1470.     muls    d2,d1
  1471.     addq.w    #3,d1
  1472.     asr.w    #2,d1
  1473.     tst.w    d2
  1474.     bpl.s    acne
  1475.     neg.w    d1
  1476. acne:    rts
  1477.  
  1478. rawkey:    cmp.b    #1,d1
  1479.     bne.s    weith
  1480.     lea    tastab(pc),a3
  1481.     move.w    tast(a1),d0
  1482.     beq.s    dff
  1483.     move.w    -2(a3,d0.w),d1
  1484.     bset    #7,d1
  1485.     cmp.w    6(a0),d1
  1486.     bne.s    dff
  1487.     subq.w    #2,tast(a1)
  1488.     cmp.w    #6,d0
  1489.     bne.w    weith
  1490.     clr.b    4(a0)
  1491.     bra.w    weith
  1492. dff:    move.w    0(a3,d0.w),d1
  1493.     addq.w    #2,d0
  1494.     cmp.w    6(a0),d1
  1495.     beq.s    dfg
  1496.     clr.w    d0
  1497. dfg:    move.w    d0,tast(a1)
  1498.     cmp.w    #6,d0
  1499.     bne.s    dgg
  1500.     clr.b    4(a0)    ;NOP-Event
  1501.     bsr.w    bildaus
  1502.     bra.w    weith
  1503. dgg:    bsr.w    bildan
  1504.     tst.l    zeisec(a1)
  1505.     beq.w    weith
  1506.     bsr.w    zeigaus
  1507.     bra.w    weith
  1508.  
  1509. tastab:    dc.w    $60,$63,$20
  1510.  
  1511. handend:
  1512.  
  1513. codepos    =    0    ;für IE-Handler
  1514. datpos    =    codepos+(handend-handbeg)
  1515. intpos    =    datpos+datsize
  1516. endpos    =    intpos+22
  1517.  
  1518.  
  1519. ***** DOS-Library-Patch *****
  1520. fki    = -18
  1521. ;fki+0    dc.w    $4ef9    ;JMP $
  1522. ;fki+2    dcb.b    6    ;Return-Code
  1523. ;fki+8    dcb.b    4    ;Länge
  1524. ;fki+12    dcb.b    4    ;Intuition-Base
  1525. ;fki+16    dcb.b    2    ;Backup-Anzahl
  1526. delfkt:    movem.l    d0-d3/a0-a6,-(sp)
  1527.     lea    tx1(pc),a4
  1528.     lea    tx2(pc),a5
  1529.     lea    tx3(pc),a6
  1530.     bsr.s    autorq
  1531.     movem.l    (sp)+,d0-d3/a0-a6
  1532.     bne.s    delfkt+fki+0
  1533.     moveq    #-1,d0
  1534.     rts
  1535.  
  1536. autorq:    lea    bo1i(pc),a1
  1537.     move.l    d1,12(a1)
  1538.     lea    bo2i(pc),a2
  1539.     move.l    a2,16(a1)
  1540.     move.l    a6,12(a2)
  1541.     lea    noti(pc),a3
  1542.     move.l    a4,12(a3)
  1543.     lea    yesi(pc),a2
  1544.     move.l    a5,12(a2)
  1545.     moveq    #0,d0
  1546.     moveq    #$20,d1
  1547.     swap    d1
  1548.     move.w    #320,d2
  1549.     moveq    #62,d3
  1550.     move.l    delfkt+fki+12(pc),a6
  1551.     move.l    $34(a6),a0
  1552.     jsr    autoreq(a6)
  1553.     tst.l    d0
  1554.     rts
  1555.  
  1556. opfkt:    cmp.l    #1006,d2
  1557.     bne.s    delfkt+fki+0
  1558.     movem.l    d0-d5/a0-a6,-(sp)
  1559.     move.l    d1,d4
  1560.     moveq    #-2,d2
  1561.     jsr    lock(a6)
  1562.     move.l    d0,d1
  1563.     beq.w    srt
  1564.     jsr    unlock(a6)
  1565.     move.l    d4,a2
  1566. zut:    tst.b    (a2)+
  1567.     bne.s    zut
  1568.     sub.l    d4,a2
  1569.     addq.l    #5,a2
  1570.     move.l    a2,d0
  1571.     lsl.l    #1,d0
  1572.     moveq    #1,d1
  1573.     move.l    a6,d5
  1574.     move.l    4.w,a6
  1575.     jsr    allocmem(a6)
  1576.     tst.l    d0
  1577.     beq.w    srt
  1578.     move.l    d0,a3
  1579.     add.l    d0,a2
  1580.     move.l    d4,a4
  1581.     move.l    a2,a0
  1582.     move.l    a3,a1
  1583. zot:    move.b    (a4),(a0)+
  1584.     move.b    (a4)+,(a1)+
  1585.     bne.s    zot
  1586.     subq.l    #1,a0
  1587.     subq.l    #1,a1
  1588.     lea    fini(pc),a4
  1589. zat:    move.b    (a4),(a0)+
  1590.     move.b    (a4)+,(a1)+
  1591.     bne.s    zat
  1592.     move.l    a0,a4
  1593.     move.l    a3,d1
  1594.     moveq    #-2,d2
  1595.     move.l    d5,a6
  1596.     jsr    lock(a6)
  1597.     move.w    delfkt+fki+16(pc),d1
  1598.     add.b    #"0",d1
  1599.     move.b    d1,-2(a2)
  1600.     subq.w    #1,d1
  1601.     move.b    d1,-2(a4)
  1602.     move.l    d0,d1
  1603.     beq.w    sab
  1604.     jsr    unlock(a6)
  1605.     move.l    a3,d1
  1606.     jsr    delete(a6)
  1607.     tst.l    d0
  1608.     bra.s    oiu
  1609. sab:    move.l    d4,d1
  1610.     movem.l    a2-a4,-(sp)
  1611.     lea    tx4(pc),a4
  1612.     lea    tx5(pc),a5
  1613.     lea    tx6(pc),a6
  1614.     bsr.w    autorq
  1615.     movem.l    (sp)+,a2-a4
  1616.     bne.s    srt
  1617.     move.l    d5,a6
  1618. oiu:    cmp.b    #"0",-2(a4)
  1619.     beq.s    uio
  1620.     move.l    a2,d1
  1621.     move.l    a3,d2
  1622.     jsr    rename(a6)
  1623.     subq.b    #1,-2(a2)
  1624.     subq.b    #1,-2(a4)
  1625.     bra.s    oiu
  1626. uio:    move.l    d4,d1
  1627.     move.l    a3,d2
  1628.     jsr    rename(a6)
  1629.     tst.l    d0
  1630.     bne.s    srt
  1631.     movem.l    (sp)+,d0-d5/a0-a6
  1632.     moveq    #0,d0
  1633.     rts
  1634. srt:    movem.l    (sp)+,d0-d5/a0-a6
  1635.     bra.w    delfkt+fki+0
  1636.  
  1637. tx1:    dc.b    "Abbruch",0
  1638. tx2:    dc.b    "Löschen",0
  1639. tx3:    dc.b    "löschen ?",0
  1640. tx4:    dc.b    "Backup",0
  1641. tx5:    dc.b    "Überschreiben",0
  1642. tx6:    dc.b    "überschreiben ?",0
  1643. fini:    dc.b    ".Bak1",0
  1644.     even
  1645.  
  1646. noti:    dc.b    0,0
  1647.     dc.w    0,6,3
  1648.     dc.l    0,0
  1649.  
  1650. yesi:    dc.b    0,0
  1651.     dc.w    0,6,3
  1652.     dc.l    0,0
  1653.  
  1654. bo2i:    dc.b    0,0
  1655.     dc.w    0,15,15
  1656.     dc.l    0,0
  1657.  
  1658. bo1i:    dc.b    0,0
  1659.     dc.w    0,15,5
  1660.     dc.l    0,0,0
  1661. delfkte:
  1662.  
  1663.  
  1664.     even
  1665. jmptab:    dc.l    infos-st,setmap-st,setmap2-st,zeit-st
  1666.     dc.l    vector-st,vector2-st,scnon-st,ptron-st,turon-st,turoff-st
  1667.     dc.l    resize-st,freqon-st,freqoff-st,delon-st,deloff-st
  1668.     dc.l    bakon-st,bakoff-st
  1669. zeitab:    dc.b    "?","d","D","s","r","R","b","m","t","T"
  1670.     dc.b    "g","f","F","l","L","a","A",0
  1671. dat:    dc.b    29,25,46,37,33,46,45,41,32,32,21,17,58,13,9,58,5,1,10
  1672. mon:    dc.b    31,28,31,30,31,30,31,31,30,31,30,31
  1673. smin    = 60
  1674. sst    = 60*smin
  1675. stag    = 24*sst
  1676. tjahr    = 365
  1677.  
  1678.     even
  1679. version:dc.b    "$VER: DMAP 2.1 (02.11.93)",0
  1680. keyres:    dc.b    "keymap.resource",0
  1681. blkres:    dc.b    "blanker.resource",0
  1682. condev: dc.b    "console.device",0
  1683. timdev: dc.b    "timer.device",0
  1684. inpdev:    dc.b    "input.device",0
  1685. dosn:    dc.b    "dos.library",0
  1686. intn:    dc.b    "intuition.library",0
  1687. gfxn:    dc.b    "graphics.library",0
  1688.  
  1689. vecok:    dc.b    "Nichts Resetfest",10
  1690. vecoke:
  1691. virus:    dc.b    $9b,"4;33;40mMöglicher Virus gefunden"
  1692.     dc.b    $9b,"0;31;40m",10
  1693. viruse:
  1694. spatch:    dc.b    "     Setpatch",10
  1695. spatche:
  1696. drurt:    dc.b    "Drücke RETURN"
  1697. drurte:
  1698. cold:    dc.b    "Cold:"
  1699. cool:    dc.b    "Cool:"
  1700. warm:    dc.b    "Warm:"
  1701. verw:    dc.b    "So geht's:",10
  1702.     dc.b    "DMAP dsrb300m10tgfla",10
  1703.     dc.b    "d:Tastatur belegen",10 
  1704.     dc.b    "D:wie d, für WB-Start",10
  1705.     dc.b    "s:Echtzeituhr lesen",10
  1706.     dc.b    "r:Resetfeste Programme",10
  1707.     dc.b    "R:wie r, für WB-Start",10
  1708.     dc.b    "b#:Bildschirmschoner nach # sec",10
  1709.     dc.b    "m#:Mauszeiger nach # sec abschalten",10
  1710.     dc.b    "t:Mausbeschleuniger ein",10
  1711.     dc.b    "T:t aus",10
  1712.     dc.b    "g:Fenster vergrößern",10
  1713.     dc.b    "f:Flimmerfrei ein",10
  1714.     dc.b    "F:f aus",10
  1715.     dc.b    "l:Löschabfrage",10
  1716.     dc.b    "L:l aus",10
  1717.     dc.b    "a#:Backupabfrage",10
  1718.     dc.b    "A:a aus",10,10
  1719.     dc.b    "b,m aus mit #=0",10
  1720.     dc.b    "Bild aus:LinkeSHIFT+CTRL+A",10
  1721.     even
  1722.     dc.b    "V2.1 von Martin Gierich",10 ;Diese Zeile nicht ändern !
  1723. verwe:
  1724.  
  1725.     ;Default-Tastatur
  1726.  
  1727.     even
  1728.     dc.l    (m2-m1)/4-1,(h2-h1)/4-1,m2-m1,h2-h1    ;Größe
  1729. kmap:
  1730. m1:    DC.B    $00,$00,$00,$00,$00,$00,$00,$00
  1731.     DC.B    $00,$00,$00,$00,$03,$9C,$00,$00
  1732.     DC.B    $00,$4C,$00,$00,$00,$C4,$00,$00
  1733.     DC.B    $00,$2E,$00,$00,$00,$3D,$00,$00
  1734.     DC.B    $00,$8C,$00,$00,$01,$C4,$00,$00
  1735.     DC.B    $00,$36,$00,$00,$00,$45,$00,$00
  1736.     DC.B    $FF,$07,$FF,$07,$FE,$00,$00,$00
  1737.     DC.B    $00,$00,$00,$00,$00,$FF,$BF,$FF
  1738.     DC.B    $EF,$FF,$EF,$FF,$F7,$47,$F4,$FF
  1739.     DC.B    $7F,$00,$00,$00,$07,$03,$03,$03
  1740.     DC.B    $03,$03,$07,$03,$03,$03,$03,$07
  1741.     DC.B    $03,$07,$80,$00,$07,$07,$07,$07
  1742.     DC.B    $07,$07,$07,$07,$07,$07,$07,$07
  1743.     DC.B    $80,$00,$00,$00,$07,$07,$07,$07
  1744.     DC.B    $07,$07,$07,$07,$07,$03,$03,$07
  1745.     DC.B    $80,$00,$00,$00,$01,$07,$07,$07
  1746.     DC.B    $07,$07,$07,$07,$03,$03,$07,$80
  1747.     DC.B    $00,$00,$00,$00,$02,$00,$41,$00
  1748.     DC.B    $05,$02,$00,$80,$80,$80,$00,$80
  1749.     DC.B    $41,$41,$41,$41,$41,$41,$41,$41
  1750.     DC.B    $41,$41,$41,$41,$00,$00,$05,$05
  1751.     DC.B    $00,$00,$00,$40,$80,$80,$80,$80
  1752.     DC.B    $80,$80,$80,$80,$80,$80,$80,$80
  1753.     DC.B    $80,$80,$80,$80,$80,$80,$80,$80
  1754.     DC.B    $80,$80,$80,$80,$7E,$60,$7E,$60
  1755.     DC.B    $21,$B9,$21,$31,$B2,$40,$22,$32
  1756.     DC.B    $23,$B3,$A7,$33,$A2,$B0,$24,$34
  1757.     DC.B    $25,$BC,$25,$35,$5E,$BD,$26,$36
  1758.     DC.B    $26,$BE,$2F,$37,$2A,$B7,$28,$38
  1759.     DC.B    $28,$AB,$29,$39,$29,$BB,$3D,$30
  1760.     DC.B    $5F,$2D,$3F,$DF,$00,$00,$00,$05
  1761.     DC.B    $7C,$5C,$7C,$5C,$00,$00,$00,$00
  1762.     DC.B    $00,$00,$00,$30,$C5,$E5,$51,$71
  1763.     DC.B    $B0,$B0,$57,$77,$00,$00,$45,$65
  1764.     DC.B    $AE,$AE,$52,$72,$DE,$FE,$54,$74
  1765.     DC.B    $A5,$A4,$5A,$7A,$00,$00,$55,$75
  1766.     DC.B    $00,$00,$49,$69,$00,$00,$4F,$6F
  1767.     DC.B    $B6,$B6,$50,$70,$7B,$5B,$DC,$FC
  1768.     DC.B    $7D,$5D,$2A,$2B,$00,$00,$00,$00
  1769.     DC.B    $00,$00,$00,$31,$00,$00,$00,$32
  1770.     DC.B    $00,$00,$00,$33,$00,$00,$41,$61
  1771.     DC.B    $A7,$DF,$53,$73,$D0,$F0,$44,$64
  1772.     DC.B    $00,$00,$46,$66,$00,$00,$47,$67
  1773.     DC.B    $00,$00,$48,$68,$00,$00,$4A,$6A
  1774.     DC.B    $00,$00,$4B,$6B,$A3,$A3,$4C,$6C
  1775.     DC.B    $3A,$3B,$D6,$F6,$22,$27,$C4,$E4
  1776.     DC.B    $5E,$23,$5E,$23,$00,$00,$00,$00
  1777.     DC.B    $00,$00,$00,$34,$00,$00,$00,$35
  1778.     DC.B    $00,$00,$00,$36,$00,$00,$3E,$3C
  1779.     DC.B    $00,$00,$59,$79,$F7,$D7,$58,$78
  1780.     DC.B    $C7,$E7,$43,$63,$AA,$AA,$56,$76
  1781.     DC.B    $BA,$BA,$42,$62,$00,$00,$4E,$6E
  1782.     DC.B    $BF,$B8,$4D,$6D,$3C,$2C,$3B,$2C
  1783.     DC.B    $3E,$2E,$3A,$2E,$3F,$AD,$5F,$2D
  1784.     DC.B    $00,$00,$00,$00,$00,$00,$00,$2E
  1785.     DC.B    $00,$00,$00,$37,$00,$00,$00,$38
  1786.     DC.B    $00,$00,$00,$39,$00,$00,$A0,$20
  1787.     DC.B    $00,$00,$00,$08,$00,$00,$02,$A4
  1788.     DC.B    $00,$00,$00,$0D,$00,$0A,$0A,$0D
  1789.     DC.B    $00,$00,$9B,$1B,$00,$00,$00,$7F
  1790.     DC.B    $00,$00,$00,$00,$00,$00,$00,$00
  1791.     DC.B    $00,$00,$00,$00,$00,$00,$00,$2D
  1792.     DC.B    $00,$00,$00,$00,$00,$00,$02,$AB
  1793.     DC.B    $00,$00,$02,$B3,$00,$00,$02,$BB
  1794.     DC.B    $00,$00,$02,$C4,$00,$00,$02,$CD
  1795.     DC.B    $00,$00,$02,$E5,$00,$00,$03,$02
  1796.     DC.B    $00,$00,$03,$17,$00,$00,$03,$28
  1797.     DC.B    $00,$00,$03,$38,$00,$00,$03,$48
  1798.     DC.B    $00,$00,$03,$78,$00,$00,$E5,$00
  1799.     DC.B    $00,$00,$E5,$00,$1B,$1B,$7B,$5B
  1800.     DC.B    $1D,$1D,$7D,$5D,$00,$00,$00,$2F
  1801.     DC.B    $00,$00,$00,$2A,$00,$00,$00,$2B
  1802.     DC.B    $00,$00,$03,$97,$00,$00,$00,$00
  1803.     DC.B    $00,$00,$00,$00,$00,$00,$00,$00
  1804.     DC.B    $00,$00,$00,$00,$00,$00,$00,$00
  1805.     DC.B    $00,$00,$00,$00,$00,$00,$00,$00
  1806.     DC.B    $00,$00,$00,$00,$00,$00,$00,$00
  1807.     DC.B    $00,$00,$00,$00,$00,$00,$00,$00
  1808.     DC.B    $00,$00,$00,$00,$00,$00,$00,$00
  1809.     DC.B    $00,$00,$00,$00,$00,$00,$00,$00
  1810.     DC.B    $00,$00,$00,$00,$00,$00,$00,$00
  1811.     DC.B    $00,$00,$00,$00,$00,$00,$00,$00
  1812.     DC.B    $00,$00,$00,$00,$00,$00,$00,$00
  1813.     DC.B    $00,$00,$00,$00,$00,$00,$00,$00
  1814.     DC.B    $00,$00,$00,$00,$01,$04,$02,$05
  1815.     DC.B    $09,$9B,$5A,$02,$04,$02,$06,$9B
  1816.     DC.B    $41,$9B,$54,$02,$04,$02,$06,$9B
  1817.     DC.B    $42,$9B,$53,$02,$04,$03,$06,$9B
  1818.     DC.B    $43,$9B,$20,$40,$02,$04,$03,$06
  1819.     DC.B    $9B,$44,$9B,$20,$41,$04,$04,$10
  1820.     DC.B    $08,$44,$69,$72,$0D,$53,$74,$61
  1821.     DC.B    $72,$74,$75,$70,$2D,$53,$65,$71
  1822.     DC.B    $75,$65,$6E,$63,$65,$05,$04,$14
  1823.     DC.B    $09,$4C,$69,$73,$74,$0D,$53,$79
  1824.     DC.B    $73,$74,$65,$6D,$2D,$43,$6F,$6E
  1825.     DC.B    $66,$69,$67,$75,$72,$61,$74,$69
  1826.     DC.B    $6F,$6E,$08,$04,$09,$0C,$45,$78
  1827.     DC.B    $65,$63,$75,$74,$65,$20,$4D,$6F
  1828.     DC.B    $75,$6E,$74,$4C,$69,$73,$74,$05
  1829.     DC.B    $04,$08,$09,$49,$6E,$66,$6F,$0D
  1830.     DC.B    $2E,$6C,$69,$62,$72,$61,$72,$79
  1831.     DC.B    $05,$04,$07,$09,$43,$6F,$70,$79
  1832.     DC.B    $20,$2E,$64,$65,$76,$69,$63,$65
  1833.     DC.B    $04,$04,$08,$08,$43,$6C,$73,$0D
  1834.     DC.B    $2D,$48,$61,$6E,$64,$6C,$65,$72
  1835.     DC.B    $09,$04,$23,$0D,$50,$61,$74,$68
  1836.     DC.B    $20,$52,$41,$4D,$3A,$46,$6F,$72
  1837.     DC.B    $6D,$61,$74,$20,$44,$72,$69,$76
  1838.     DC.B    $65,$20,$44,$46,$31,$3A,$20,$4E
  1839.     DC.B    $61,$6D,$65,$20,$4C,$65,$65,$72
  1840.     DC.B    $20,$4E,$6F,$69,$63,$6F,$6E,$73
  1841.     DC.B    $0F,$04,$0C,$13,$50,$61,$74,$68
  1842.     DC.B    $20,$53,$59,$53,$3A,$53,$79,$73
  1843.     DC.B    $74,$65,$6D,$49,$6E,$73,$74,$61
  1844.     DC.B    $6C,$6C,$20,$44,$46,$31,$3A,$03
  1845.     DC.B    $02,$9B,$3F,$7E,$64,$6C,$00,$4D
  1846.     DC.B    $20,$47,$69,$65,$72,$69,$63,$68
  1847. m2:
  1848.  
  1849. h1:    DC.B    $00,$00,$02,$40,$00,$00,$02,$20
  1850.     DC.B    $00,$00,$02,$1C,$00,$00,$02,$18
  1851.     DC.B    $00,$00,$02,$14,$00,$00,$02,$10
  1852.     DC.B    $00,$00,$02,$0C,$00,$00,$02,$08
  1853.     DC.B    $00,$00,$02,$04,$00,$00,$02,$00
  1854.     DC.B    $00,$00,$01,$FC,$00,$00,$01,$F8
  1855.     DC.B    $00,$00,$01,$F4,$00,$00,$01,$CC
  1856.     DC.B    $00,$00,$00,$2A,$00,$00,$00,$26
  1857.     DC.B    $00,$00,$00,$22,$00,$00,$00,$1E
  1858.     DC.B    $00,$00,$00,$1A,$00,$00,$00,$16
  1859.     DC.B    $00,$00,$00,$12,$00,$00,$00,$0E
  1860.     DC.B    $00,$00,$00,$0A
  1861.  
  1862.     even
  1863. h4:    dcb.w    (h4-st)/2-((h4-st)/4*2)    ;Wäre das auch einfacher
  1864.                     ;möglich gewesen ?
  1865.                     ;Ja, mit CNOP !
  1866. h2:    dc.l    $03f2    ;Hunk-Ende
  1867. h3:
  1868.  
  1869.     dcb.b    1000    ;Platz für größere Tastaturen
  1870.  
  1871.  
  1872.  
  1873. end:    END
  1874.  
  1875.